The present invention relates to industrial controllers and in particular to industrial controllers having a modular construction that permits upgrading of the modules during operation of the industrial controller.
Industrial controllers are special purpose computers used for controlling factory automation and the like. Under the direction of a stored program, a processor of the industrial controller examines a series of inputs reflecting the status of a controlled process and changes outputs affecting control of the controlled process.
Typically, the stored program will be unique to the particular control application. Perfecting this control program will frequently require testing of the control program with the actual equipment being controlled.
The circuitry, or hardware configuration of the industrial controller may also be unique to the particular application. Different applications will generally require different numbers and types of I/O circuits depending on the inputs and outputs needed for the controlled process. Some applications will require circuitry to handle specialized control or communication tasks.
For this reason, it is typical to construct the industrial controller in a modular fashion, having one or more functional modules connected together through a common backplane in a rack or the like. The modular construction allows the circuitry of the industrial controller to be customized to some degree for each application and simplifies maintenance and repair of the industrial controller in the event that one or more modules fail.
Normally, the controlled process and the technology of the industrial controller will evolve over time. As a result it may be necessary to modify the control program and upgrade the functional modules of the industrial controller. The functional modules may also need to be changed as part of normal maintenance and repair.
In such cases, the control system may be stopped, the old functional modules removed from the backplane, and the new modules replaced. Similarly, the control system may be stopped to add a new program to the industrial controller or to modify its existing program.
The economics of certain controlled processes, for example manufacturing facilities, make shutting down the controlled process for upgrading of the control system prohibitively expensive. In some batch-type processes, shutting down the process for unscheduled maintenance may cause damage to equipment and spoilage of processed items.
Accordingly, it is desirable that such upgrading and changes of the control system be performed without stopping the controlled process or with only minimal disruption.
To minimize process disruption in changing the control program, it is known to provide for a conditional editing of the control program. Here, two versions of the control program are effectively held on the controller. The controller is then configured to toggle between the versions depending on the state of an internal edit flag. This toggling may occur while the controller is operating.
Upgrading functional modules is more difficult. Removing a functional module while the controlled process is under way may cause unexpected changes in the controller's outputs. Even if the particular functional module were not critical, its loss might provoke a fault condition in the controller, stopping the controlled process entirely. A new functional module replaced in the controller will require some time to re-establish communication with the remainder of the industrial controller.
If the upgrading of the functional module is unsuccessful in some way, additional disruption of the controlled process upon reinsertion of the old module would be inevitable.